Skip to content

Commit 0c2c982

Browse files
update ver
1 parent 5aca605 commit 0c2c982

File tree

5 files changed

+113
-9
lines changed

5 files changed

+113
-9
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
[![Docker](https://github.com/RootShell-coder/swarm-keepalived/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/RootShell-coder/swarm-keepalived/actions/workflows/docker-publish.yml)
44

5-
[Keepalived for Linux - Version 2.2.8 - Release Notes - May 31, 2023](https://www.keepalived.org/software/keepalived-2.2.8.tar.gz)
5+
Update VERSION 2.3.1
66

7-
## keepalived v 2.2.8 configure flags
7+
[Keepalived for Linux ](https://www.keepalived.org/download.html)
8+
9+
## keepalived configure flags
810

911
* disable-dynamic-linking
1012
* prefix=/usr

docker/Dockerfile

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM alpine:latest AS build
2-
2+
ENV VERSION=2.3.1
33
WORKDIR /tmp
4-
ADD https://keepalived.org/software/keepalived-2.2.8.tar.gz .
4+
ADD https://keepalived.org/software/keepalived-$VERSION.tar.gz .
55

66
RUN set eux; \
77
addgroup -S keepalived_script; \
@@ -32,8 +32,8 @@ RUN set eux; \
3232
pcre2-dev \
3333
autoconf \
3434
automake; \
35-
tar xvzf keepalived-2.2.8.tar.gz; \
36-
cd /tmp/keepalived-2.2.8/; \
35+
tar xvzf keepalived-$VERSION.tar.gz; \
36+
cd /tmp/keepalived-$VERSION/; \
3737
./autogen.sh; \
3838
./configure \
3939
--disable-dynamic-linking \
@@ -58,7 +58,7 @@ RUN set eux; \
5858
make install; \
5959
strip /usr/sbin/keepalived; \
6060
cd -; \
61-
rm -rf /tmp/keepalived-2.2.8; \
61+
rm -rf /tmp/keepalived-$VERSION; \
6262
apk --no-cache del \
6363
binutils \
6464
file-dev \
@@ -104,3 +104,4 @@ USER keepalived
104104
VOLUME /etc/keepalived/
105105
ENTRYPOINT ["entrypoint"]
106106
CMD ["sudo", "/usr/sbin/keepalived", "--dont-fork", "--log-console", "--use-file", "/etc/keepalived/keepalived.conf"]
107+

docker/entrypoint

+7
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ sed -i "s!{{KEEPALIVED_INTERFACE}}!${KEEPALIVED_INTERFACE}!g" ${KEEPALIVED_CONF}
1717
sed -i "s!{{KEEPALIVED_VIRTUAL_ROUTER_ID}}!${KEEPALIVED_VIRTUAL_ROUTER_ID}!g" ${KEEPALIVED_CONF}
1818
sed -i "s!{{KEEPALIVED_PRIORITY}}!${KEEPALIVED_PRIORITY}!g" ${KEEPALIVED_CONF}
1919
sed -i "s!{{KEEPALIVED_UNICAST_SRC_IP}}!${KEEPALIVED_UNICAST_SRC_IP}!g" ${KEEPALIVED_CONF}
20+
sed -i "s!{{DST_NETWORK}}!${DST_NETWORK}!g" ${KEEPALIVED_CONF}
2021

2122
UNICAST_PEER=$(echo $KEEPALIVED_UNICAST_PEER | sed "s/\s//g" | sed "s/,/ /g")
2223
for up in ${UNICAST_PEER[@]}; do
@@ -34,4 +35,10 @@ done
3435

3536
sed -i "s!{{KEEPALIVED_AUTH_PASS}}!${KEEPALIVED_AUTH_PASS}!g" ${KEEPALIVED_CONF}
3637

38+
# VIRTUAL ROUTES (add default gateway)
39+
if [[ -n "${DEFAULT_GATEWAY}" ]]; then
40+
sed -i 's/^#VR//' ${KEEPALIVED_CONF}
41+
sed -i "s!{{DEFAULT_GATEWAY}}!${DEFAULT_GATEWAY}!g" ${KEEPALIVED_CONF}
42+
fi
43+
3744
exec "$@"

docker/keepalived.conf

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
global_defs {
22
default_interface {{KEEPALIVED_INTERFACE}}
33
}
4+
45
vrrp_instance VI_1 {
56
interface {{KEEPALIVED_INTERFACE}}
6-
state BACKUP
77
virtual_router_id {{KEEPALIVED_VIRTUAL_ROUTER_ID}}
88
priority {{KEEPALIVED_PRIORITY}}
99
nopreempt
@@ -12,10 +12,15 @@ vrrp_instance VI_1 {
1212
{{KEEPALIVED_UNICAST_PEER}}
1313
}
1414
virtual_ipaddress {
15-
{{KEEPALIVED_VIRTUAL_IPADDRESS}} dev agge label agge:0
15+
{{KEEPALIVED_VIRTUAL_IPADDRESS}} dev {{KEEPALIVED_INTERFACE}} label {{KEEPALIVED_INTERFACE}}:0
1616
}
1717
authentication {
1818
auth_type PASS
1919
auth_pass {{KEEPALIVED_AUTH_PASS}}
2020
}
21+
22+
#VR virtual_routes {
23+
#VR 0.0.0.0/0 via {{DEFAULT_GATEWAY}} dev {{KEEPALIVED_INTERFACE}} onlink
24+
#VR }
25+
2126
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Default route
2+
3+
Default Gateway is a device on the network (usually a router) that serves as an output point for data packets addressed to other networks. It is used when a computer or other network device cannot find a more specific route for data transmission. In this case, the devices send data via the default gateway.
4+
5+
Enable default gateway
6+
7+
If you transfer the `DEFAULT_GATEWAY` variable to docker-compose.yml this will add a default route to the routing table
8+
9+
```json
10+
virtual_routes {
11+
0.0.0.0/0 via {{DEFAULT_GATEWAY}} dev {{KEEPALIVED_INTERFACE}} onlink
12+
}
13+
```
14+
15+
Interface enp3s0
16+
17+
```bash
18+
ip a s enp3s0
19+
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
20+
link/ether 52:54:00:13:5a:a2 brd ff:ff:ff:ff:ff:ff
21+
inet 192.168.10.2/24 brd 192.168.10.255 scope global enp3s0
22+
valid_lft forever preferred_lft forever
23+
inet 108.177.16.24/27 scope global enp3s0:0
24+
valid_lft forever preferred_lft forever
25+
inet6 fe80::5054:ff:fe13:5aa2/64 scope link
26+
valid_lft forever preferred_lft forever
27+
```
28+
29+
route
30+
31+
```bash
32+
routel
33+
Dst Gateway Prefsrc Protocol Scope Dev Table
34+
default 108.177.16.1 keepalived enp3s0
35+
108.177.16.0/27 108.177.16.24 kernel link enp3s0
36+
192.168.10.0/24 192.168.10.2 kernel link enp3s0
37+
108.177.16.24 108.177.16.24 kernel host enp3s0 local
38+
108.177.16.31 108.177.16.24 kernel link enp3s0 local
39+
127.0.0.0/8 127.0.0.1 kernel host lo local
40+
127.0.0.1 127.0.0.1 kernel host lo local
41+
127.255.255.255 127.0.0.1 kernel link lo local
42+
192.168.10.2 192.168.10.2 kernel host enp3s0 local
43+
192.168.10.255 192.168.10.2 kernel link enp3s0 local
44+
```
45+
46+
docker-compose.yml
47+
48+
```yml
49+
---
50+
services:
51+
master:
52+
image: keepalived:latest
53+
environment:
54+
DAFAULT_GATEWAY: "108.177.16.1"
55+
KEEPALIVED_UNICAST_SRC_IP: "192.168.10.2"
56+
KEEPALIVED_UNICAST_PEER: "192.168.10.3"
57+
KEEPALIVED_VIRTUAL_IPADDRESS: "108.177.16.24/27"
58+
KEEPALIVED_PRIORITY: "200"
59+
KEEPALIVED_INTERFACE: "enp3s0"
60+
network_mode: host
61+
restart: always
62+
cap_add:
63+
- NET_ADMIN
64+
- NET_BROADCAST
65+
- NET_RAW
66+
```
67+
68+
69+
```asci
70+
.-~~~-.
71+
.- ~ ~-( )_ _
72+
/ ~ -.
73+
| ',
74+
\ .'
75+
~- ._ ,. ,.,.,.,., .-~
76+
|
77+
----------------
78+
| 108.177.16.1 |
79+
----------------
80+
master / gateway \ slave
81+
enp3s0 / \ eth0
82+
---------------------- -----------------------
83+
| vrrp 108.177.16.24 | | vrrp ---.---.---.--- |
84+
| IP 192.168.10.2 | | IP 192.168.10.3 |
85+
---------------------- ------------------------
86+
docker | | docker
87+
----------unicast----------
88+
89+
```

0 commit comments

Comments
 (0)