Link

Ubuntu 网络

目录

  1. Ubuntu 网络
    1. 查看 IP
    2. IP 地址配置
      1. 手动配置 IP 地址(临时)
      2. 手动设置网关(临时)
    3. 修改网卡 mac 地址
      1. 手动配置(临时)
    4. 修改网卡MTU
    5. 临时
    6. 重启网络服务(16.06之后)
    7. 域名解析相关
    8. 安装 ping、wget 等网络相关工具
    9. veth pair
      1. 添加 veth
    10. 桥接相关
      1. 添加 bridge
      2. 为 bridge 设置 IP
      3. 将接口关联到 bridge
      4. 查看有 bridge 下有哪些设备
    11. 网络命令空间(network namespace)
    12. 关闭 UFW
    13. 修改网卡的名称(18.04)

查看 IP

ifconfig
ifconfig ens33

root@k8s-n01:~# ifconfig ens33
ens33     Link encap:Ethernet  HWaddr 00:0c:29:50:52:36
          inet addr:192.168.0.181  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe50:5236/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:870490 errors:0 dropped:0 overruns:0 frame:0
          TX packets:832070 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:602840141 (602.8 MB)  TX bytes:263397395 (263.3 MB)

或者

ip addr
ip addr show dev ens33

root@k8s-n01:~# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:50:52:36 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.181/24 brd 192.168.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 10.10.50.104/24 brd 10.10.50.255 scope global ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe50:5236/64 scope link
       valid_lft forever preferred_lft forever

IP 地址配置

网络配置文件:

vim /etc/network/interfaces

iface lo inet loopback
auto lo

# management
auto ens33
iface ens33 inet static
  address 192.168.0.181
  netmask 255.255.255.0
  gateway 192.168.0.1
  dns-nameservers 223.5.5.5
  #secondary 地址配置
auto ens33:1
iface ens33:1 inet static
        address 10.10.50.104
        netmask 255.255.255.0

# k8s-access
auto ens192
iface ens192 inet static
    address 10.0.0.10
    netmask 255.255.255.0
    gateway 10.0.0.1
    dns-nameservers    192.168.10.17
    dns-search    vmware.local

# k8s-transport(仅设置接口状态为 up)
auto ens224
iface ens224 inet manual
    ip link set ens224 up

手动配置 IP 地址(临时)

ifconfig ens33 192.168.0.20 netmask 255.255.255.0 up

#添加 secondary 地址
ifconfig ens33 add 192.168.1.20 netmask 255.255.255.0 up

ip addr add 10.1.1.1/24 dev ens33

#删除地址配置
ip addr del 10.1.1.1/24 dev ens33

手动设置网关(临时)

sudo route add default gw 10.1.1.1

#删除网关配置
sudo route del default gw 10.1.1.1

修改网卡 mac 地址

配置文件:

vim /etc/network/interfaces

auto ens33
iface ens33 inet static
  hwaddress ether 08:00:00:00:00:01

手动配置(临时)

ifconfig ens33 hw ether 00:0c:29:ab:66:72

或者

ip link show

ip link set dev ens33 address 00:0c:29:ab:66:73

修改网卡MTU

临时

ip link set dev ens33 mtu 8950

重启网络服务(16.06之后)

systemctl	restart networking

域名解析相关

Hosts 文件:

vim /etc/hosts

192.168.10.100 n01.vmware.local
192.168.10.91 m01.vmware.local
192.168.10.92 m02.vmware.local
192.168.10.93 m03.vmware.local

DNS 配置文件(此文件内容会根据 interfaces 中的 DNS 配置自动更新):

vim /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 223.6.6.6

安装 ping、wget 等网络相关工具

apt-get install wget net-tools bridge-utils tcpdump -y

veth pair

添加 veth

ip link veth0 type veth peer name veth1
ip addr add 10.1.1.1/24 dev veth0
ip addr add 10.1.1.2/24 dev veth1
ip link set veth0 up
ip link set veth1 up

桥接相关

添加 bridge

ip link add name br0 type bridge
ip link set br0 up

或者

brctl addbr br0 

为 bridge 设置 IP

ip addr add 10.1.1.1/24 dev br0

将接口关联到 bridge

ip link set dev veth0 master br0
#或者
brctl addif br0 veth0

查看有 bridge 下有哪些设备

root@k8s-m01:~# bridge link
6: veth19269bd state UP @(null): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 master docker0 state forwarding priority 32 cost 2

#或者
brctl show
root@k8s-n01:~# brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.02422c4c4531       no              veth057cc45
                  

网络命令空间(network namespace)

添加网络 namespace

ip netns add networkns1

在命令空间中执行 ip link list

ip netns exec networkns1 ip link list 

查看有哪些namespace

ip netns list 

删除命令空间

ip netns delete networkns1 

将设备分配到某命令空间

ip link set veth1 netns networkns1 

#设置地址
ip netns exec networkns1 ifconfig veth1 10.1.1.2/24 up

关闭 UFW

systemctl stop ufw
ufw disable

修改网卡的名称(18.04)

1、获取网卡的 MAC 地址

ip addr

2、创建/编辑 70-persistent-net.rules 文件,里面的 address 代表网卡 MAC 地址,NAME 代表修改后的名称。

nano /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:yy:xx:yy:xx:yy", NAME="INTERFACENAME"

3、替换 /etc/netplan/filename.yaml 中网卡的名称

ethernets:
INTERFACENAME:

4、编辑 Grub 配置文件

nano /etc/default/grub

#将下列行替换为后面的内容
#GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX="net.ifnames=1 biosdevname=0"

5、更新 grub

update-grub

6、重启操作系统

参考资料:

https://www.tomvanbrienen.nl/how-to-rename-ubuntu-18-04-an-network-ethernet-interface/

《k8s 网络权威指南》